Redis(1)

您所在的位置:网站首页 redis脚本lua qps Redis(1)

Redis(1)

2023-03-18 14:27| 来源: 网络整理| 查看: 265

Redis(Remote Dictionary Server)是目前电商行业比较通用的主要数据缓存手段。各家基本上是在其基础上做了优化和扩展,增加了一些新的特性,生成满足自身业务需求数据缓存组件。追根溯源,Redis自身有哪些特性呢?基本操作和高级特性又有哪些?在什么场景下我们该考虑使用Redis呢?带着这些问题,今天笔者认真学习了一遍Redis组件,并梳理成Redis学习笔记系列。

本章主要做Redis的概述、环境安装介绍、基本操作的介绍。

1. Redis概述 Redis是什么 Redis的特性 2. 安装Redis3. redis-server和redis-cli的参数说明 redis-serverredis-cli 4. Redis基本操作

1. Redis概述 Redis是什么

Redis is an open source (BSD licensed), in-memory data structure store, used as database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs and geospatial indexes with radius queries. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件. 它支持多种类型的数据结构,包括:字符串(strings),散列(hashes),列表(lists),集合(sets),有序集合(sorted sets)。Redis 内置了复制(replication), LUA脚本(Lua scripting),LRU驱动事件(LRU eviction),事务(transactions)和不同级别的磁盘持久化(persistence),并通过Sentinel和自动分区(Cluster)提供高可用性(high availability).

简单来说,Redis是一种开源的(C语言实现)基于键值对(数据结构)的内存数据库。

Redis的特性

速度快:C语言实现,所有数据都加载在内存中,数据读速度11万/秒,写数据81000/s。

丰富的数据结构:Redis支持多种数据结构:列表,集合,有序集合,散列数据类型。是一种典型的数据结构服务器。

操作原子性:所有Redis操作是原子的,这保证了如果两个客户端同时访问的Redis服务器将获得更新后的值。

主从复制(master-slaver):通过主从复制可以允许多个slave server拥有和master server相同的数据库副本。master server专用于写数据,slave server用于读数据,一写多度。

分片(sharding):通过分片实现了Redis集群。

持久化:Redis提供了一些策略可以实现数据的落盘存储。

支持多开发语言:Redis支持多种语言,诸如Ruby,Python, Twisted Python, PHP, Erlang, Tcl, Perl, Lua, Java, Scala, Clojure等

2. 安装Redis

我是在Linux系统下安装Redis的,版本是3.0.5,由于是公司内网,没办法直接使用# wget命令。我将Redis部署在IP为10.27.180.75的服务器上。

第一步,下载Reids最新版本,地址如下http://redis.io/download

第二步,登录10.27.180.75,解压并编译安装Redis

[root@fcpreapp05 ~]# tar -xzvf redis-3.0.5.tar.gz [root@fcpreapp05 ~]# cd redis-3.0.5 [root@fcpreapp05 redis-.]# ls -RELEASENOTES COPYING Makefile redis.conf runtest-sentinel tests BUGS INSTALL README runtest sentinel.conf utils CONTRIBUTING MANIFESTO deps runtest-cluster src [root@fcpreapp05 redis-.]# make

第三步,启动redis服务端

[root@fcpreapp05 redis-.]# cd src/ [root@fcpreapp05 src]# redis-server

第四步,另一台机器作为客户端连接服务器,通过ping PONG命令确定连接成功

[root@fcpreapp05 ~]# redis-cli -h 10.27.180.75 -p 6379 .:> ping PONG "PONG"

另外,我们还可以下载RedisClient,RedisClient是 Redis客户端GUI工具,使用Java swt和jedis编写。它将redis数据以windows资源管理器的界面风格呈现给用户。

提问:我们可以通过哪些方式来访问Redis服务器呢? 1. Telnet:telnet 10.27.180.75:6379 2. redis-cli:redis-cli -h 10.27.180.75 -p 6379 3. RedisClient

到这里,Redis的环境已经部署到服务器上来。本篇的余下内容补充一些额外的内容,包括redis-server和redis-cli的参数说明,Redis的基本操作等。

3. redis-server和redis-cli的参数说明 redis-server

redis-server命令用于启动Redis服务器,其参数说明如下:

Usage: ./redis-server [/path/to/redis.conf] [options] //启动并加装指定配置文件(可选) ./redis-server - (read config from stdin) //使用标准输入读取配置为启动参数 ./redis-server -v or --version //查看版本号 ./redis-server -h or --help ./redis-server --test-memory //测试指定内存大小下redis是否能正常运行 Examples: ./redis-server (run the server with default conf) ./redis-server /etc/redis/conf ./redis-server --port 7777 ./redis-server --port 7777 --slaveof 127.0.0.1 8888 ./redis-server /etc/myredis.conf --loglevel verbose redis-cli

redis-server命令用于启动Redis客户端连接服务器,其参数说明如下:

Usage: redis-cli [OPTIONS] [cmd [arg [arg ...]]] -h // 主机名 (默认本地: 127.0.0.1). -p // 端口号 (默认: 6379). -s // Server socket (overrides hostname and port). -a // Password to use when connecting to the server. -r // 重复执行 -i // 如果重复执行-r,则每次执行的时间间隔 -n // 数据库号码. -x // 从标准输入中读取最后一个参数. -d -c // 开启reidis cluster模式 --raw // 中文输出设置 --no-raw --csv // Output in CSV format. --stat --latency --latency-history --latency-dist --lru-test --slave // 模拟slave从master上接收到的commands --rdb // 获取指定redis实例的rdb文件,保存到本地 --pipe // 这个一个非常有用的参数。发送原始的redis protocl格式数据到服务器端执行 --pipe-timeout --bigkeys // 对redis中的key进行采样,寻找较大的keys --scan --pattern --intrinsic-latency --eval // 执行指定lua脚本的 --help --version

redis-cli中参数较多,这里我就常用的操作举一些例子:

(1)-h -p 在一起使用,连接远端服务器

[root@fcpreapp05 ~]# redis-cli -h 10.27.180.75 -p 6379 .:>

(2)-r -i 经常在一起使用,比如查看Redis的QPS(每秒执行次数)

(3)–eval 执行指定lua脚本的

(4)关闭Redis

4. Redis基本操作

下面给出Redis的一些基本操作。

操作说明ping测试连接是否存在quit退出连接info服务器基本信息monitor实时转储收到的请求config get获取服务器的参数配置dbsize当前数据库中key的数量flushdb清空当前数据库expire设置key的过期时间persist lv移除当前key的过期时间set设置key-value,SET key valueget返回 key 所关联的字符串值,GET keydel删除多个key,DEL key [key …]exist检查给定 key 是否存在,EXISTS keyecho打印key值 :> set name "redis" OK :> set type "key-value" OK :> exists type (integer) :> get type "key-value" :> del name type (integer)

举个例子如上所示,有关Redis更多的数据结构操作我们将在下一篇中给出,尽情期待!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3